/**
 * @description 验证变量是否是纯粹对象，不包含数组、函数、日期、null
 * @param {Any} value 需要验证的对象
 * @returns {Boolean} 是对象返回true，否则返回false
 */
export default function isPlainObject(value) {
	// 先进行基础检查：排除 null、检查类型是否为 object
	if (value === null || typeof value !== "object") {
		return false;
	}

	// 获取原型
	const prototype = Object.getPrototypeOf(value);

	// 检查原型是否为 null（如 Object.create(null) 创建的对象）
	// 或者原型是否等于 Object.prototype（普通对象）
	return prototype === null || prototype === Object.prototype;
}
